package com.hezuti.sns.dao;

import org.hibernate.Criteria;
import org.hibernate.criterion.Property;
import org.springframework.stereotype.Component;

import com.hezuti.common.dao.BaseHibernateDaoGeneric;
import com.hezuti.sns.domain.User;

@Component
public class UserDao extends  BaseHibernateDaoGeneric<User> {

	/**
	 * 根据登录名获取用户信息
	 * @param loginName
	 * @return
	 */
	public User getUserByLoginName(String loginName) {
		Criteria criteria = this.createCriteria(Property.forName(User.FIELD_LOGIN_NAME).eq(loginName));
		return findUniqueBy(criteria);
	}
	
	/**
	 * 检查email是否存在
	 * @param email
	 * @return
	 * 存在：返回true;不存在 返回false;
	 */
	public boolean checkEmail(String email){
		User obj=this.findUniqueBy(User.FIELD_EMAIL, email);
		if(null==obj){
			return false;
		}else{
			return true;
		}
	}
	
	/**
	 * 检查用户是否已经存在<br/>
	 * @param name
	 * @return
	 * 存在:返回true; <br/>
	 * 不存在:返回 false;
	 */
	public boolean checkName(String name){
		User obj = this.findUniqueBy(User.FIELD_LOGIN_NAME, name);
		if(null==obj){
			return false;
		}else{
			return true;
		}
		
	}
	
	/**
	 * 保存对象
	 * @param u
	 * @return
	 * 返回 保存后的对象
	 * 
	 */
	public User registUser(User u){
		u=this.save(u);
		return u;
	}
}
